It is known in the art of computer graphics to create motion graphics programs called “compositions.” Compositions are a relatively simple way in which a user can intuitively create motion graphical effects (such as a moving background, flashing text, etc.) without extensive knowledge of how to program a computer. An exemplary program that allows for the creation of composition files is known as the Quartz Composer™, available from Apple Inc.
Quartz Composer is based on and brings together several graphical and non-graphical technologies, such as Quartz 2D, Core Image, Core Video, OpenGL, QuickTime, MIDI System Services, and Real Simple Syndication. As a result, once created, compositions can be incorporated into any number of applications, such as iPhoto, iMove, iChat, etc.
When creating a composition file, the editor portion of the Quartz Composer program contains a grid for assembling and connecting “patches”, which are selected from a library. Patches are like functions, and may take input parameters (the left side of the patches) and provide output results (the right side of the patches). Within the editor, patches can be visually connected together by links to create a composition which essentially defines the data flow or the manner in which graphical motion data is processed by the composition. A benefit of the Quartz Composer format is the ease with which a user can quickly create a relatively complicated graphical composition.
In addition, physics systems are of growing importance for user interfaces, such as the well-known swipe or scrolling with inertia and bounce features from the iPhone™ of Apple Inc. Physics-based user interfaces (UIs) provide a more fluid and natural way for users to interact with computer systems. However, such systems as they try to model more advanced behaviors (such as spring systems), are difficult to design for non-specialists and are out of reach of ordinary designers. There has been a lack of user-friendly graphics design framework for designing physics-based graphical user interfaces (GUIs).